package com.weimall.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class JzpzZbExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public JzpzZbExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("ID like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("ID not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andRqIsNull() {
            addCriterion("RQ is null");
            return (Criteria) this;
        }

        public Criteria andRqIsNotNull() {
            addCriterion("RQ is not null");
            return (Criteria) this;
        }

        public Criteria andRqEqualTo(Date value) {
            addCriterion("RQ =", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqNotEqualTo(Date value) {
            addCriterion("RQ <>", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqGreaterThan(Date value) {
            addCriterion("RQ >", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqGreaterThanOrEqualTo(Date value) {
            addCriterion("RQ >=", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqLessThan(Date value) {
            addCriterion("RQ <", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqLessThanOrEqualTo(Date value) {
            addCriterion("RQ <=", value, "rq");
            return (Criteria) this;
        }

        public Criteria andRqIn(List<Date> values) {
            addCriterion("RQ in", values, "rq");
            return (Criteria) this;
        }

        public Criteria andRqNotIn(List<Date> values) {
            addCriterion("RQ not in", values, "rq");
            return (Criteria) this;
        }

        public Criteria andRqBetween(Date value1, Date value2) {
            addCriterion("RQ between", value1, value2, "rq");
            return (Criteria) this;
        }

        public Criteria andRqNotBetween(Date value1, Date value2) {
            addCriterion("RQ not between", value1, value2, "rq");
            return (Criteria) this;
        }

        public Criteria andPzzIsNull() {
            addCriterion("PZZ is null");
            return (Criteria) this;
        }

        public Criteria andPzzIsNotNull() {
            addCriterion("PZZ is not null");
            return (Criteria) this;
        }

        public Criteria andPzzEqualTo(String value) {
            addCriterion("PZZ =", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzNotEqualTo(String value) {
            addCriterion("PZZ <>", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzGreaterThan(String value) {
            addCriterion("PZZ >", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzGreaterThanOrEqualTo(String value) {
            addCriterion("PZZ >=", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzLessThan(String value) {
            addCriterion("PZZ <", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzLessThanOrEqualTo(String value) {
            addCriterion("PZZ <=", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzLike(String value) {
            addCriterion("PZZ like", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzNotLike(String value) {
            addCriterion("PZZ not like", value, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzIn(List<String> values) {
            addCriterion("PZZ in", values, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzNotIn(List<String> values) {
            addCriterion("PZZ not in", values, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzBetween(String value1, String value2) {
            addCriterion("PZZ between", value1, value2, "pzz");
            return (Criteria) this;
        }

        public Criteria andPzzNotBetween(String value1, String value2) {
            addCriterion("PZZ not between", value1, value2, "pzz");
            return (Criteria) this;
        }

        public Criteria andFjsIsNull() {
            addCriterion("FJS is null");
            return (Criteria) this;
        }

        public Criteria andFjsIsNotNull() {
            addCriterion("FJS is not null");
            return (Criteria) this;
        }

        public Criteria andFjsEqualTo(Integer value) {
            addCriterion("FJS =", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsNotEqualTo(Integer value) {
            addCriterion("FJS <>", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsGreaterThan(Integer value) {
            addCriterion("FJS >", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsGreaterThanOrEqualTo(Integer value) {
            addCriterion("FJS >=", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsLessThan(Integer value) {
            addCriterion("FJS <", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsLessThanOrEqualTo(Integer value) {
            addCriterion("FJS <=", value, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsIn(List<Integer> values) {
            addCriterion("FJS in", values, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsNotIn(List<Integer> values) {
            addCriterion("FJS not in", values, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsBetween(Integer value1, Integer value2) {
            addCriterion("FJS between", value1, value2, "fjs");
            return (Criteria) this;
        }

        public Criteria andFjsNotBetween(Integer value1, Integer value2) {
            addCriterion("FJS not between", value1, value2, "fjs");
            return (Criteria) this;
        }

        public Criteria andZdrIsNull() {
            addCriterion("ZDR is null");
            return (Criteria) this;
        }

        public Criteria andZdrIsNotNull() {
            addCriterion("ZDR is not null");
            return (Criteria) this;
        }

        public Criteria andZdrEqualTo(String value) {
            addCriterion("ZDR =", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrNotEqualTo(String value) {
            addCriterion("ZDR <>", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrGreaterThan(String value) {
            addCriterion("ZDR >", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrGreaterThanOrEqualTo(String value) {
            addCriterion("ZDR >=", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrLessThan(String value) {
            addCriterion("ZDR <", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrLessThanOrEqualTo(String value) {
            addCriterion("ZDR <=", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrLike(String value) {
            addCriterion("ZDR like", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrNotLike(String value) {
            addCriterion("ZDR not like", value, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrIn(List<String> values) {
            addCriterion("ZDR in", values, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrNotIn(List<String> values) {
            addCriterion("ZDR not in", values, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrBetween(String value1, String value2) {
            addCriterion("ZDR between", value1, value2, "zdr");
            return (Criteria) this;
        }

        public Criteria andZdrNotBetween(String value1, String value2) {
            addCriterion("ZDR not between", value1, value2, "zdr");
            return (Criteria) this;
        }

        public Criteria andShrIsNull() {
            addCriterion("SHR is null");
            return (Criteria) this;
        }

        public Criteria andShrIsNotNull() {
            addCriterion("SHR is not null");
            return (Criteria) this;
        }

        public Criteria andShrEqualTo(String value) {
            addCriterion("SHR =", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrNotEqualTo(String value) {
            addCriterion("SHR <>", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrGreaterThan(String value) {
            addCriterion("SHR >", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrGreaterThanOrEqualTo(String value) {
            addCriterion("SHR >=", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrLessThan(String value) {
            addCriterion("SHR <", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrLessThanOrEqualTo(String value) {
            addCriterion("SHR <=", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrLike(String value) {
            addCriterion("SHR like", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrNotLike(String value) {
            addCriterion("SHR not like", value, "shr");
            return (Criteria) this;
        }

        public Criteria andShrIn(List<String> values) {
            addCriterion("SHR in", values, "shr");
            return (Criteria) this;
        }

        public Criteria andShrNotIn(List<String> values) {
            addCriterion("SHR not in", values, "shr");
            return (Criteria) this;
        }

        public Criteria andShrBetween(String value1, String value2) {
            addCriterion("SHR between", value1, value2, "shr");
            return (Criteria) this;
        }

        public Criteria andShrNotBetween(String value1, String value2) {
            addCriterion("SHR not between", value1, value2, "shr");
            return (Criteria) this;
        }

        public Criteria andDjlxIsNull() {
            addCriterion("DJLX is null");
            return (Criteria) this;
        }

        public Criteria andDjlxIsNotNull() {
            addCriterion("DJLX is not null");
            return (Criteria) this;
        }

        public Criteria andDjlxEqualTo(String value) {
            addCriterion("DJLX =", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxNotEqualTo(String value) {
            addCriterion("DJLX <>", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxGreaterThan(String value) {
            addCriterion("DJLX >", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxGreaterThanOrEqualTo(String value) {
            addCriterion("DJLX >=", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxLessThan(String value) {
            addCriterion("DJLX <", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxLessThanOrEqualTo(String value) {
            addCriterion("DJLX <=", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxLike(String value) {
            addCriterion("DJLX like", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxNotLike(String value) {
            addCriterion("DJLX not like", value, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxIn(List<String> values) {
            addCriterion("DJLX in", values, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxNotIn(List<String> values) {
            addCriterion("DJLX not in", values, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxBetween(String value1, String value2) {
            addCriterion("DJLX between", value1, value2, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjlxNotBetween(String value1, String value2) {
            addCriterion("DJLX not between", value1, value2, "djlx");
            return (Criteria) this;
        }

        public Criteria andDjmcIsNull() {
            addCriterion("DJMC is null");
            return (Criteria) this;
        }

        public Criteria andDjmcIsNotNull() {
            addCriterion("DJMC is not null");
            return (Criteria) this;
        }

        public Criteria andDjmcEqualTo(String value) {
            addCriterion("DJMC =", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcNotEqualTo(String value) {
            addCriterion("DJMC <>", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcGreaterThan(String value) {
            addCriterion("DJMC >", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcGreaterThanOrEqualTo(String value) {
            addCriterion("DJMC >=", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcLessThan(String value) {
            addCriterion("DJMC <", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcLessThanOrEqualTo(String value) {
            addCriterion("DJMC <=", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcLike(String value) {
            addCriterion("DJMC like", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcNotLike(String value) {
            addCriterion("DJMC not like", value, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcIn(List<String> values) {
            addCriterion("DJMC in", values, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcNotIn(List<String> values) {
            addCriterion("DJMC not in", values, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcBetween(String value1, String value2) {
            addCriterion("DJMC between", value1, value2, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjmcNotBetween(String value1, String value2) {
            addCriterion("DJMC not between", value1, value2, "djmc");
            return (Criteria) this;
        }

        public Criteria andDjidIsNull() {
            addCriterion("DJID is null");
            return (Criteria) this;
        }

        public Criteria andDjidIsNotNull() {
            addCriterion("DJID is not null");
            return (Criteria) this;
        }

        public Criteria andDjidEqualTo(String value) {
            addCriterion("DJID =", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidNotEqualTo(String value) {
            addCriterion("DJID <>", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidGreaterThan(String value) {
            addCriterion("DJID >", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidGreaterThanOrEqualTo(String value) {
            addCriterion("DJID >=", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidLessThan(String value) {
            addCriterion("DJID <", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidLessThanOrEqualTo(String value) {
            addCriterion("DJID <=", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidLike(String value) {
            addCriterion("DJID like", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidNotLike(String value) {
            addCriterion("DJID not like", value, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidIn(List<String> values) {
            addCriterion("DJID in", values, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidNotIn(List<String> values) {
            addCriterion("DJID not in", values, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidBetween(String value1, String value2) {
            addCriterion("DJID between", value1, value2, "djid");
            return (Criteria) this;
        }

        public Criteria andDjidNotBetween(String value1, String value2) {
            addCriterion("DJID not between", value1, value2, "djid");
            return (Criteria) this;
        }

        public Criteria andSsnyIsNull() {
            addCriterion("SSNY is null");
            return (Criteria) this;
        }

        public Criteria andSsnyIsNotNull() {
            addCriterion("SSNY is not null");
            return (Criteria) this;
        }

        public Criteria andSsnyEqualTo(String value) {
            addCriterion("SSNY =", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyNotEqualTo(String value) {
            addCriterion("SSNY <>", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyGreaterThan(String value) {
            addCriterion("SSNY >", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyGreaterThanOrEqualTo(String value) {
            addCriterion("SSNY >=", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyLessThan(String value) {
            addCriterion("SSNY <", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyLessThanOrEqualTo(String value) {
            addCriterion("SSNY <=", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyLike(String value) {
            addCriterion("SSNY like", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyNotLike(String value) {
            addCriterion("SSNY not like", value, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyIn(List<String> values) {
            addCriterion("SSNY in", values, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyNotIn(List<String> values) {
            addCriterion("SSNY not in", values, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyBetween(String value1, String value2) {
            addCriterion("SSNY between", value1, value2, "ssny");
            return (Criteria) this;
        }

        public Criteria andSsnyNotBetween(String value1, String value2) {
            addCriterion("SSNY not between", value1, value2, "ssny");
            return (Criteria) this;
        }

        public Criteria andPzhIsNull() {
            addCriterion("PZH is null");
            return (Criteria) this;
        }

        public Criteria andPzhIsNotNull() {
            addCriterion("PZH is not null");
            return (Criteria) this;
        }

        public Criteria andPzhEqualTo(String value) {
            addCriterion("PZH =", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhNotEqualTo(String value) {
            addCriterion("PZH <>", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhGreaterThan(String value) {
            addCriterion("PZH >", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhGreaterThanOrEqualTo(String value) {
            addCriterion("PZH >=", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhLessThan(String value) {
            addCriterion("PZH <", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhLessThanOrEqualTo(String value) {
            addCriterion("PZH <=", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhLike(String value) {
            addCriterion("PZH like", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhNotLike(String value) {
            addCriterion("PZH not like", value, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhIn(List<String> values) {
            addCriterion("PZH in", values, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhNotIn(List<String> values) {
            addCriterion("PZH not in", values, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhBetween(String value1, String value2) {
            addCriterion("PZH between", value1, value2, "pzh");
            return (Criteria) this;
        }

        public Criteria andPzhNotBetween(String value1, String value2) {
            addCriterion("PZH not between", value1, value2, "pzh");
            return (Criteria) this;
        }

        public Criteria andShIsNull() {
            addCriterion("SH is null");
            return (Criteria) this;
        }

        public Criteria andShIsNotNull() {
            addCriterion("SH is not null");
            return (Criteria) this;
        }

        public Criteria andShEqualTo(String value) {
            addCriterion("SH =", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShNotEqualTo(String value) {
            addCriterion("SH <>", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShGreaterThan(String value) {
            addCriterion("SH >", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShGreaterThanOrEqualTo(String value) {
            addCriterion("SH >=", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShLessThan(String value) {
            addCriterion("SH <", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShLessThanOrEqualTo(String value) {
            addCriterion("SH <=", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShLike(String value) {
            addCriterion("SH like", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShNotLike(String value) {
            addCriterion("SH not like", value, "sh");
            return (Criteria) this;
        }

        public Criteria andShIn(List<String> values) {
            addCriterion("SH in", values, "sh");
            return (Criteria) this;
        }

        public Criteria andShNotIn(List<String> values) {
            addCriterion("SH not in", values, "sh");
            return (Criteria) this;
        }

        public Criteria andShBetween(String value1, String value2) {
            addCriterion("SH between", value1, value2, "sh");
            return (Criteria) this;
        }

        public Criteria andShNotBetween(String value1, String value2) {
            addCriterion("SH not between", value1, value2, "sh");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}